# NSB — build log (Finder round)

## Pages in this round
- `NSB Login.dc.html`: Google Workspace SSO (primary) + email magic link. Only nortian.com accounts are accepted, with an error state, a sent state and simulated auth. Opens the Finder.
- `NSB Account Finder.dc.html`: page 1 of 3. Collagen Market and Pricing Intelligence come next, after review (brief §0).

## Component log
Reused from Company Profile V1.2:
- the floating translucent top bar
- the segmented capsule nav
- the ink inverse card (Ask bar, Next step)
- the evidence side sheet: spring in, drag-to-dismiss, velocity projection, rubber band
- big Ubuntu 500 figures
- ◐ / ≈ / Estimate marks
- circular ↗ and icon buttons
- the verdict pill (coral fill + ink text)
- the 5-dot relationship meter
- the press scale(.97)
- the scrim modal

New components:
- **AppRail**: 56px, ink.
- **AskBar**: natural language → editable chips with ▲▼✕ and "Not understood" chips, then a Review → Show N step.
- **FilterRail**: groups → facets. Kinds: check with live counts, is/is not operator, match any/all, segmented, range + histogram, switch, state list + mini tile map.
- **AppliedChipBar**: sentence chips with a clickable operator; "+N if removed" in the zero state.
- **SummaryBar**: count, Σ demand, Σ BOLs, % DM mapped, verdict split, top origins. Every figure is clickable.
- **ResultsTable**: sticky first column, multi-sort (shift-click), column picker, density.
- **LeadCard**.
- **TileMap**: US state tile grid, coral sequential ramp.
- **CompareGrid**: 2–4 accounts, best-in-row coral dot, differences only.
- **BulkBar**.
- Saved-segment and List cards (stub).

## Decisions
- The Map view is a tile grid (one equal square per state), not a geographic choropleth. Equal areas keep small states clickable, and no geo data is needed in the prototype.
- Range facets use two native sliders (min and max) rather than one dual-thumb slider, because they are accessible without custom CSS.
- Lookalike scoring is a transparent heuristic: incumbent, segment, material, formats, demand overlap and origin. It is a stub, and the reasons are always shown.
- Only Northwind Wellness Labs (rich-brand) and Wide World Granola Co. (sparse) have profile fixtures. For the other rows, "Open profile" says so.
- The brief asks for ⌘K global search. Here it focuses the Ask bar.
- Thumbs feedback uses Lucide thumbs icons, not emoji, per the Nortian "no emoji" rule.

## Data
- `data/finder.accounts.json`: 48 simulated accounts, with a deterministic seed.
  - Segments 22 / 10 / 6 / 5 / 3 / 2.
  - Verdicts 14 / 18 / 9 / 7.
  - Origins CN 19 · BR 12 · EU 7 · KR/VN 5 · unknown 5.
  - HQ is concentrated in CA, TX, FL, NY, UT, NJ and IL, plus 10 other states.
- `data/configs.json`: `marketEvents: []` and `nortianPricing` (all null, [VERIFY]).

## Gaps (Finder)
- No real account data; every value is simulated.
- No per-state account dots ("zoom into state" is mock).
- No licensed contact data; CSV export excludes contact fields.
- Lookalike model, alerts and the advanced builder are stubs.


## Round 2: Collagen Market + Pricing Intelligence
New components: **ChartCard**, a generic card that renders data-driven SVG with a takeaway title, code chip, Chart/Table/Map tabs, legend, notes and source strip. The other new components are all built from it:
- **FlowMap** (schematic)
- **BubbleScatter** with play axis
- **SmallMultiples**
- **TariffTracker**
- **Sankey**
- **PriceLadder**
- **StripPlot** (dodge layout + IQR)
- **CorridorChart**
- **TierCurves**
- **Calculator**
- **QuotesTable** (facets, group-by, side sheet)

The tooltip, side sheet, segmented nav and source strip are reused from V1.2.

Data: `data/market.json` (A1–A12) and `data/pricing.json` (A13, A13b, A14). Values are copied exactly. Municipality lat/lon are approximate and used for plotting only.

### Decisions
- Maps are schematic (equirectangular lat/lon, no basemap). Origin flows use arcs and proportional circles. The share-% choropleth needs a basemap (MapLibre later).
- Marketplace and Brazil-domestic quotes have no confidence rating in the appendix. They show as "Not rated" and render hollow with the Low group, and the toggle is labeled "Low / unrated".
- Source type uses "Quote document · date" because the appendix does not say signed vs e-mail.
- No quote has a stated validity in the future, so the valid count is 0.
- The corridor is drawn only for FOB (n = 9 ≥ 5, excluding the outlier and retail). It is a band over the group's date span, not over time.
- The Jan–Aug 2026 value (−6.5%) and unit value (−11.2%) deltas are taken from brief M1, since A2 has no value column.

### Gaps
- Value by origin; .5080 unit value; .5080 before Feb 2026.
- Country basemap / choropleth.
- Official tariff-action dates (`marketEvents` is empty).
- China freight; Ingredients Online freight basis.
- Quote confidence for marketplace and Brazil rows; signed vs e-mail source type.
- Monthly quote history and quote volumes.
- `nortianPricing` inputs [VERIFY].
- The mirror-check 2026 period note conflicts with A1 (Jan–Aug) [VERIFY].
- The Gillco/Prinova incoterm note conflicts with the data rows [VERIFY].
